{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "19e0870e-353e-447a-b429-334625bc1d72",
   "metadata": {
    "is_executing": true
   },
   "outputs": [],
   "source": [
    "!pip install faiss-cpu"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "74edc7c2-2f05-40d3-98c9-c1c4d13bf819",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 需要 CUDA 7.5+ 版本支持的 GPU\n",
    "#!pip install faiss-gpu "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cfd2fec5-84f0-429d-903a-08933bf19cfa",
   "metadata": {},
   "source": [
    "# Faiss 向量数据库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "03b26ecf-987a-4c53-b7fa-cc566363276d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:08:06.061636900Z",
     "start_time": "2024-01-10T07:08:05.320505400Z"
    }
   },
   "outputs": [],
   "source": [
    "from langchain.embeddings.openai import OpenAIEmbeddings\n",
    "from langchain.text_splitter import CharacterTextSplitter\n",
    "from langchain.vectorstores import FAISS\n",
    "from langchain.document_loaders import TextLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cb5d79ae-6fe5-4fff-bfab-30762c1f1188",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:09:28.732585100Z",
     "start_time": "2024-01-10T07:09:28.725576500Z"
    }
   },
   "outputs": [],
   "source": [
    "# 实例化文档加载器\n",
    "loader = TextLoader(\"filter_sale.txt\")\n",
    "# 加载文档\n",
    "documents = loader.load()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9b404e22-a148-4b63-a69c-54b1e76db5d3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:09:49.845517100Z",
     "start_time": "2024-01-10T07:09:49.839054100Z"
    }
   },
   "outputs": [],
   "source": [
    "# 实例化文本分割器\n",
    "text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=0)\n",
    "# 分割文本\n",
    "docs = text_splitter.split_documents(documents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "34897ff3-8f9c-42d6-841f-e06c0d2f521c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:09:58.382955800Z",
     "start_time": "2024-01-10T07:09:58.353594300Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Document(page_content='[客户问题]：这个过滤分离设备为什么比其他产品更优越？\\n[销售回答]：我们的过滤分离设备采用先进的技术，具有更高的效率和更长的使用寿命。与竞争对手相比，我们的产品更可靠，更能满足您的需求。\\n\\n[客户问题]：这个设备的维护成本是多少？\\n[销售回答]：我们的过滤分离设备设计为低维护成本，使用优质材料和先进工艺，以确保长时间稳定运行。维护成本相对较低，能够为您的企业节省更多费用。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：与其他品牌相比，你们的售后服务如何？\\n[销售回答]：我们以客户为中心，提供全方位的售后服务。我们拥有专业的技术支持团队，确保及时解决您的问题。而且，我们提供定期的维护服务，以确保设备的持续高效运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：这款设备的安装复杂吗？\\n[销售回答]：我们的过滤分离设备设计为简单易安装，我们提供详细的安装手册和视频教程。此外，我们的售后团队也可以提供远程指导，确保您能够快速、顺利地完成安装。\\n\\n[客户问题]：能否提供一些客户的成功案例？\\n[销售回答]：当然可以，我们有许多成功案例，涉及不同行业和需求。我可以为您提供一份案例清单，以展示我们的过滤分离设备在解决客户问题方面的卓越性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：你们的产品有定制化的选项吗？\\n[销售回答]：是的，我们提供定制化选项，以满足客户特定的需求和规格要求。无论是尺寸、材料还是功能性需求，我们都可以根据您的要求进行调整。\\n\\n[客户问题]：这个设备的能耗如何？\\n[销售回答]：我们的过滤分离设备采用先进的能效技术，以确保在满足高效过滤要求的同时，最大限度地降低能耗。这有助于降低您的运营成本并提高设备的环保性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：你们有没有提供培训课程，以确保我们的团队能够正确使用设备？\\n[销售回答]：是的，我们提供全面的培训课程，涵盖设备的安装、操作和维护。我们的培训专家会亲自指导，确保您的团队能够充分了解和正确使用我们的过滤分离设备。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：这个设备的交货周期是多久？\\n[销售回答]：我们通常能够在订单确认后的短时间内完成生产，并在最短可能的时间内交付设备。具体的交货周期会根据订单的规模和定制化要求而有所变化，但我们会尽最大努力满足客户的时间要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司的产能可能会有一些变化，这款设备是否容易扩展或调整？\\n[销售回答]：我们的过滤分离设备具有良好的灵活性和可扩展性，可以根据您的产能变化进行调整。我们可以为您提供灵活的解决方案，确保设备能够适应您企业的不断发展和变化。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们在成本方面有一定的考虑，这款设备的价格如何？\\n[销售回答]：我们理解成本对您的企业至关重要。我们提供竞争力十足的价格，并且可以根据您的采购数量和定制化要求提供灵活的价格方案。同时，考虑到我们产品的高性能和低维护成本，它将为您带来更高的性价比。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：这款设备的过滤效果如何保证？\\n[销售回答]：我们的过滤分离设备经过严格的质量控制和测试流程，确保在各种工作环境下都能提供卓越的过滤效果。我们使用先进的过滤技术，确保能够有效分离和去除目标颗粒，保障您的生产过程的洁净和高效运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：有没有可能进行现场演示或试用这款设备？\\n[销售回答]：是的，我们可以安排现场演示或试用设备，以便您能够亲身体验它的性能。这有助于您更好地了解设备的工作原理，并确认它是否符合您的实际需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们担心设备的可靠性，特别是在长时间运行的情况下。\\n[销售回答]：我们的过滤分离设备经过严格的耐久性测试，以确保在长时间运行时仍能保持高效稳定的性能。此外，我们提供定期的维护服务，以延长设备的寿命并降低任何潜在故障的风险。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能在未来进行扩张，这款设备是否适用于不同规模的生产？\\n[销售回答]：是的，我们的设备设计为可扩展的，可以轻松适应不同规模的生产。无论是小规模生产还是大规模工业生产，我们都可以为您提供适用的解决方案，确保设备在不同规模下都能表现出色。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们关注设备的环保性能，这款设备是否符合相关的环保标准？\\n[销售回答]：我们的过滤分离设备符合并且通常超过了相关的环保标准。我们致力于采用环保材料和技术，以最大程度地降低对环境的影响。选择我们的产品不仅有助于您的生产过程更加环保，同时也有助于实现公司的可持续发展目标。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备的操作是否容易上手，需要培训多久？\\n[销售回答]：我们的设备设计为用户友好型，操作界面简单直观。通常情况下，我们提供的培训课程几天就足够让您的团队熟练掌握设备的操作。我们的培训专家将确保您的团队能够迅速上手，提高生产效率。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要大量设备，有没有批量购买的折扣？\\n[销售回答]：是的，我们提供批量购买折扣，具体的折扣幅度会根据您的订单数量进行调整。我们致力于为客户提供最有竞争力的价格，确保您在购买大量设备时能够获得更大的优惠。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们担心设备的运维问题，你们有没有提供远程支持服务？\\n[销售回答]：是的，我们提供远程支持服务，可以通过电话、视频会议或远程访问协助您解决设备运行中的问题。这种及时的支持可以最大程度地减少设备停工时间，确保您的生产不受影响。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备的耗材成本是不是很高？\\n[销售回答]：我们的设备设计为经济高效，耗材成本相对较低。我们提供高质量的耗材，并通过优化设计以降低更换频率，从而降低您的运营成本。\\n\\n[客户问题]：我们可能需要一些定制的技术参数，是否可以满足？\\n[销售回答]：是的，我们可以根据您的特定技术要求提供定制化服务。我们拥有专业的工程团队，可以与您合作，调整设备的技术参数，以满足您独特的生产需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备是否容易集成到我们现有的生产线中？\\n[销售回答]：我们的设备设计为易于集成，可以根据您现有的生产线进行定制。我们的工程团队可以提供专业的集成服务，确保设备无缝衔接到您的生产过程中，减少生产中断的可能性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们需要设备能够适应一些特殊的工作环境，如高温或腐蚀性环境。\\n[销售回答]：我们可以根据您的工作环境特点提供定制的设备，以确保其能够在高温或腐蚀性环境中稳定运行。我们有丰富的经验处理各种特殊环境下的过滤需求。\\n\\n[客户问题]：设备的保修期是多久？\\n[销售回答]：我们提供标准的保修期，并且可以根据客户需求提供延长的保修服务。在保修期内，我们将负责免费维修设备，并确保设备在高效运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些行业标准的变化，设备是否可以满足未来的更新和升级？\\n[销售回答]：我们的设备设计为可升级的，可以轻松适应行业标准的变化。我们会定期推出新的软硬件升级，以确保您的设备在未来仍然保持先进性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们想要了解设备的能效，是否可以提供相关的能效报告？\\n[销售回答]：是的，我们可以提供详细的能效报告，包括设备的能耗、效率等指标。这有助于您评估设备的能效表现，并制定节能减排的生产策略。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司在品牌声誉和合规性方面非常重视，这款设备是否符合相关认证标准？\\n[销售回答]：是的，我们的设备通常符合多种国际认证标准，包括ISO、CE等。我们注重产品质量和合规性，以确保您的投资不仅在性能上有保障，同时也在品牌声誉和合规性方面表现卓越。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可持续性发展非常关注，这款设备是否考虑了可再生能源的利用？\\n[销售回答]：是的，我们的设计理念中充分考虑了可持续性发展的因素。我们可以提供符合可再生能源利用的选项，以减少对传统能源的依赖，降低对环境的影响，为您的企业实现更为可持续的生产。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们可能会面临一些恶劣的工作条件，设备的耐用性如何？\\n[销售回答]：我们的设备经过严格的耐久性测试，可以在各种恶劣工作条件下保持稳定性能。无论是极端温度、湿度还是其他恶劣环境，我们的设备都具有卓越的耐用性，确保在任何情况下都能够可靠运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临国际业务，设备是否支持多语言操作界面？\\n[销售回答]：是的，我们的设备通常支持多语言操作界面，以满足国际业务的需要。这有助于您的团队更加方便地操作设备，确保生产过程的顺畅进行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们想要了解设备的故障诊断和维修流程，以降低生产中断的时间。\\n[销售回答]：我们提供详细的故障诊断手册和维修流程指南，帮助您的团队快速定位问题并采取相应的维修措施。此外，我们的远程支持团队也可以实时协助故障诊断，以最小化生产中断时间。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会扩大生产规模，设备是否支持迅速的生产能力提升？\\n[销售回答]：我们的设备具有良好的可扩展性，可以迅速适应生产规模的扩大。我们可以与您合作，根据实际需求提供相应的解决方案，确保设备能够灵活应对生产规模的变化。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们想要了解设备的智能化水平，是否支持远程监控和自动化控制？\\n[销售回答]：是的，我们的设备通常支持智能化水平较高的功能，包括远程监控和自动化控制。这使得您可以随时随地监视设备运行状况，同时通过智能化控制系统实现更高效的生产管理。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对供应链透明度有一定要求，设备的供应链管理如何？\\n[销售回答]：我们对供应链管理非常重视，确保原材料的可追溯性和质量。我们的供应链是经过认证的，符合国际标准，以保证您获得高品质的设备，并实现供应链的透明和可控。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些工艺改进，设备是否能够适应这些改变？\\n[销售回答]：是的，我们的设备设计为灵活适应工艺改进。我们可以与您紧密合作，根据您的工艺需求进行调整和升级，确保设备始终保持最优性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的数据安全性有一定担忧，设备是否有相应的安全措施？\\n[销售回答]：我们重视客户数据的安全性，设备通常采用先进的安全技术和加密措施，以确保您的数据受到保护。我们遵循行业标准，确保设备在运行过程中始终维护着高水平的数据安全性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们关注设备的能效水平，是否有相关的能源消耗数据？\\n[销售回答]：当然，我们可以提供详细的能源消耗数据和能效报告，以帮助您评估设备在不同操作条件下的能源利用效率。我们的设备经过精心设计，旨在最大程度地减少能源浪费，为您的企业提供更为经济、环保的解决方案。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们的生产过程可能需要定期的设备升级，是否能够方便快捷地进行硬件或软件的更新？\\n[销售回答]：是的，我们提供定期的硬件和软件升级服务，以确保您的设备始终保持最新的性能和功能。这些升级通常可以方便快捷地进行，减少生产中断的时间，确保您的生产过程始终处于最佳状态。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备的运行噪音对我们的生产环境有一定的影响，这款设备的噪音水平如何？\\n[销售回答]：我们的设备经过优化设计，通常具有低噪音水平。我们可以提供详细的噪音测试报告，以确保设备在运行时对您的生产环境影响最小。此外，我们也可以根据您的特殊要求提供降噪选项，以进一步满足您的需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些特殊材料的过滤需求，这款设备是否适用于不同类型的过滤材料？\\n[销售回答]：是的，我们的设备通常可以适用于不同类型的过滤材料，包括但不限于纤维、膜材料等。我们可以根据您的特殊过滤需求提供定制化的过滤方案，确保设备能够有效处理各种类型的材料。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行设备的扩容，这款设备是否支持模块化设计？\\n[销售回答]：是的，我们的设备通常采用模块化设计，以便更轻松地进行扩容。这种设计允许您根据需要逐步增加设备的容量，确保设备与您的生产规模保持同步发展，降低扩容的复杂性和成本。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备在运行中是否会产生废物，以及废物处理的方法是什么？\\n[销售回答]：我们的设备通常设计为最小化废物产生，同时我们也提供废物处理方案。废物处理方法会根据您的生产过程和废物类型而有所不同，我们可以与您合作，为您提供符合环保标准的废物处理解决方案。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司的生产流程可能会涉及到一些爆炸性环境，这款设备是否具备相应的防爆性能？\\n[销售回答]：当然，我们可以提供符合防爆标准的设备，确保其在可能存在爆炸性环境中运行时能够保持安全性能。我们了解在一些特殊工作环境下的安全要求，可以为您提供定制化的防爆解决方案。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可操作性有一些特殊要求，是否可以定制化操作界面？\\n[销售回答]：是的，我们可以根据您的特殊要求提供定制化的操作界面。我们的工程团队可以与您合作，调整设备的控制界面，确保其符合您的操作习惯和需求，提高设备的可操作性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：设备的交互界面是否支持远程访问，以方便我们进行远程监控和管理？\\n[销售回答]：是的，我们的设备通常支持远程访问，您可以通过安全的网络连接远程监控和管理设备。这种功能可以让您随时随地了解设备的运行状况，实现更加便捷的生产管理。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会涉及到一些特殊的法规要求，这款设备是否符合相关法规和标准？\\n[销售回答]：是的，我们的设备通常设计和制造符合行业标准和法规的要求。我们的工程团队会密切关注各种法规，并确保设备的设计、生产和操作均符合相应的法规标准，为您提供合规的解决方案。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对供应链的可追溯性有较高要求，设备的主要零部件是否可以追溯到其原产地？\\n[销售回答]：我们严格控制主要零部件的供应链，以确保其可追溯性。我们的供应链管理体系通常允许我们追溯零部件的原产地和生产过程，确保您能够获得可信赖、透明的供应链信息。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些数字化转型，设备是否支持与其他数字化系统的集成？\\n[销售回答]：是的，我们的设备通常支持与其他数字化系统的集成，以便更好地适应您未来的数字化转型计划。我们的工程团队可以与您的IT团队合作，实现设备与其他数字化系统的无缝连接，提高整体生产效率。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的可维护性有一些担忧，是否能够方便地更换零部件？\\n[销售回答]：我们的设备通常采用模块化设计，以便更方便地更换零部件。我们提供详细的维护手册和视频教程，以帮助您的维护团队快速、准确地进行零部件更换，最小化设备停工时间。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要在设备上安装一些额外的传感器，以获取更多的数据，设备是否支持这种定制化？\\n[销售回答]：是的，我们通常可以支持额外传感器的定制化安装。我们的工程团队可以与您合作，根据您的数据采集需求进行调整，确保设备能够满足您的定制化要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可靠性和稳定性有很高的要求，设备是否经过相关的可靠性测试？\\n[销售回答]：是的，我们的设备经过严格的可靠性测试，包括但不限于寿命测试、振动测试等。这些测试确保设备在长时间运行中能够保持高可靠性和稳定性，满足您的高要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们希望设备的操作界面能够简单直观，是否可以进行个性化定制？\\n[销售回答]：是的，我们通常提供个性化定制的操作界面选项。我们的设计团队可以根据您的操作习惯和需求进行调整，确保设备的操作界面简单直观，提高操作效率。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司的工作环境可能会有一些特殊要求，设备是否可以根据环境要求进行定制？\\n[销售回答]：是的，我们的设备通常可以根据客户的特殊要求进行定制。我们的工程团队可以与您合作，根据工作环境的特点进行调整，确保设备能够适应各种特殊工作环境。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的响应速度有一定要求，是否能够提供高响应速度的解决方案？\\n[销售回答]：是的，我们的设备通常采用高性能的控制系统，以确保快速响应和高效运行。我们可以根据您的响应速度需求提供相应的解决方案，确保设备能够在短时间内做出精准响应。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些生产线的重新布局，设备是否能够适应新的生产线配置？\\n[销售回答]：是的，我们的设备通常设计为灵活适应不同的生产线配置。我们的工程团队可以与您协作，根据新的生产线布局进行调整，确保设备无缝集成，并保持高效运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的节能性能非常关注，是否可以提供节能方案？\\n[销售回答]：当然，我们致力于提供节能的设备解决方案。我们的设计通常包括一系列节能措施，如优化的能源利用、智能控制系统等，以确保设备在运行时最大程度地减少能源消耗，为您的企业实现更为环保和经济的生产。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会有一些特殊的培训需求，是否能够提供个性化的培训方案？\\n[销售回答]：是的，我们通常提供个性化的培训方案，以满足客户的特殊培训需求。我们的培训团队可以根据您的设备配置和操作流程设计定制化的培训课程，确保您的团队能够快速掌握设备的操作和维护技能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些人员调整，设备是否支持多用户的操作权限设置？\\n[销售回答]：是的，我们的设备通常支持多用户权限设置。我们可以根据您的要求配置设备的操作权限，确保不同的用户拥有适当的操作权限，以提高设备操作的安全性和管理的灵活性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司希望设备能够与企业的ERP系统集成，以便更好地管理生产数据，是否支持这样的集成？\\n[销售回答]：是的，我们的设备通常支持与企业的ERP系统集成。我们的工程团队可以协助您实现设备与ERP系统的无缝连接，实现生产数据的更好管理和分析。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在不同地区进行业务扩张，设备的国际适用性如何？\\n[销售回答]：我们的设备通常设计为国际适用，符合多个国家和地区的标准和规定。我们的工程团队可以根据当地的电气、安全等标准进行调整，以确保设备在不同地区的使用符合法规要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的交付周期有一定的紧迫性，是否能够提供加急交付服务？\\n[销售回答]：是的，我们通常可以提供加急交付服务，根据您的紧急需求调整生产计划和物流安排，确保设备能够在您期望的时间内交付到位。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的质量非常看重，是否能够提供相关的质量认证文件？\\n[销售回答]：当然，我们通常可以提供设备的质量认证文件，包括但不限于ISO、CE等认证。我们的设备经过严格的质量控制，确保在交付前符合相关的国际标准和认证要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司在维护保养方面有自己的一套流程，是否可以根据我们的流程提供定制化的维护方案？\\n[销售回答]：是的，我们通常可以根据客户的维护流程提供定制化的维护方案。我们的维护团队可以与您的维护团队协作，调整维护计划和流程，以满足您公司的特殊需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会涉及到一些特殊的环保要求，设备是否符合相关环保标准？\\n[销售回答]：是的，我们的设备通常符合各种环保标准和法规。我们采用环保友好的材料和技术，致力于减少对环境的影响。我们可以提供相关的环保认证文件，以确保设备符合您公司的环保要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的可持续性发展和生命周期管理有一些关切，是否提供相关的生命周期评估和管理方案？\\n[销售回答]：是的，我们通常可以提供设备的生命周期评估和管理方案。这包括设备的设计寿命、维护保养计划以及可能的更新和升级方案，以确保设备在整个生命周期内能够持续为您提供最佳性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可视化监控需求较高，是否提供用户友好的可视化监控界面？\\n[销售回答]：是的，我们的设备通常配备用户友好的可视化监控界面。这使得您可以直观地监视设备运行状况，实时获取关键数据，并在需要时进行相应的操作。我们也可以根据您的具体需求定制界面，以满足更高层次的可视化监控需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要设备与其他智能制造系统进行集成，是否支持与工业互联网相关标准的连接？\\n[销售回答]：是的，我们的设备通常支持与工业互联网相关标准的连接，以实现与其他智能制造系统的集成。我们的工程团队可以协助您建立设备与工业互联网平台之间的连接，实现更高级别的数据共享和智能制造。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的可靠性和安全性有很高的要求，是否进行过独立的第三方验证或认证？\\n[销售回答]：是的，我们通常会委托独立的第三方机构对设备进行验证或认证。这确保了设备在可靠性和安全性方面符合行业标准，并为您提供了额外的保障。我们可以提供相关的认证文件，以证明设备的可靠性和安全性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要进行一些定期的设备性能评估，是否提供定期的性能评估服务？\\n[销售回答]：是的，我们通常可以提供定期的设备性能评估服务。我们的服务团队可以定期对设备进行检查、测试和性能评估，以确保设备始终保持最佳状态，提供更加可靠和高效的生产。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的故障率非常敏感，是否能够提供历史故障数据或客户参考？\\n[销售回答]：是的，我们通常可以提供历史故障数据供客户参考。这有助于客户了解设备的故障率和性能稳定性。我们也可以分享客户的使用经验，以帮助您更好地评估设备的可靠性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要设备的远程升级服务，以便及时获取最新功能和性能改进，是否支持远程升级？\\n[销售回答]：是的，我们通常支持远程升级服务。通过远程升级，您可以及时获取最新的软件功能和性能改进，无需停机或现场干预。这有助于确保设备始终保持在最新的技术水平上。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些特殊气候条件，设备是否能够在极端温度或湿度下正常运行？\\n[销售回答]：是的，我们的设备通常经过严格的环境测试，能够在各种气候条件下稳定运行。我们可以提供设备的工作温度范围和湿度要求，以确保设备在特殊气候条件下表现出色。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的总体拥有成本非常关注，是否能够提供关于设备生命周期成本的分析？\\n[销售回答]：当然，我们可以提供设备生命周期成本的详细分析。这包括设备的购置成本、运营成本、维护成本等方面的估算，以帮助您全面了解设备的总体拥有成本，并作出更明智的投资决策。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的占地空间有一定限制，是否能够提供紧凑型设计的解决方案？\\n[销售回答]：是的，我们通常可以提供紧凑型设计的解决方案，以满足客户对占地空间的限制。我们的工程团队可以根据您的空间要求进行设计调整，确保设备在占用空间方面更为高效。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要一些定制化的工装夹具，以适应不同产品的生产需求，是否能够提供定制的工装夹具？\\n[销售回答]：是的，我们通常可以提供定制化的工装夹具，以满足不同产品的生产需求。我们的工程团队可以与您合作，设计并制造适用于特定产品的定制工装夹具，确保设备灵活适应不同生产任务。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对供应商的售后服务支持要求较高，是否提供全天候的售后支持服务？\\n[销售回答]：是的，我们通常提供全天候的售后支持服务。我们的售后团队设有24/7的服务热线，随时随地为客户提供技术支持和解决问题。我们还可以根据客户需求提供远程支持、现场服务等多种服务方式。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要一些培训材料以便于内部培训，是否能够提供相关的培训资料？\\n[销售回答]：是的，我们通常可以提供详细的培训资料，包括操作手册、维护手册、培训视频等。这些资料有助于客户内部进行培训，确保操作和维护团队能够熟练掌握设备的使用和维护技能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可定制性有一些独特的需求，是否能够提供高度定制化的解决方案？\\n[销售回答]：是的，我们通常可以提供高度定制化的解决方案，以满足客户的独特需求。我们的工程团队可以与您深入沟通，了解您的定制化要求，并设计制造符合您需求的特殊设备。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些工艺创新，设备是否能够适应新的工艺流程？\\n[销售回答]：是的，我们的设备通常设计为灵活适应工艺创新。我们可以与客户紧密合作，根据新的工艺流程进行调整和升级，确保设备能够在未来的工艺创新中保持卓越性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些特殊气候条件，设备是否能够在极端温度或湿度下正常运行？\\n[销售回答]：是的，我们的设备通常经过严格的环境测试，能够在各种气候条件下稳定运行。我们可以提供设备的工作温度范围和湿度要求，以确保设备在特殊气候条件下表现出色。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的总体拥有成本非常关注，是否能够提供关于设备生命周期成本的分析？\\n[销售回答]：当然，我们可以提供设备生命周期成本的详细分析。这包括设备的购置成本、运营成本、维护成本等方面的估算，以帮助您全面了解设备的总体拥有成本，并作出更明智的投资决策。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的占地空间有一定限制，是否能够提供紧凑型设计的解决方案？\\n[销售回答]：是的，我们通常可以提供紧凑型设计的解决方案，以满足客户对占地空间的限制。我们的工程团队可以根据您的空间要求进行设计调整，确保设备在占用空间方面更为高效。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要一些定制化的工装夹具，以适应不同产品的生产需求，是否能够提供定制的工装夹具？\\n[销售回答]：是的，我们通常可以提供定制化的工装夹具，以满足不同产品的生产需求。我们的工程团队可以与您合作，设计并制造适用于特定产品的定制工装夹具，确保设备灵活适应不同生产任务。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对供应商的售后服务支持要求较高，是否提供全天候的售后支持服务？\\n[销售回答]：是的，我们通常提供全天候的售后支持服务。我们的售后团队设有24/7的服务热线，随时随地为客户提供技术支持和解决问题。我们还可以根据客户需求提供远程支持、现场服务等多种服务方式。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要一些培训材料以便于内部培训，是否能够提供相关的培训资料？\\n[销售回答]：是的，我们通常可以提供详细的培训资料，包括操作手册、维护手册、培训视频等。这些资料有助于客户内部进行培训，确保操作和维护团队能够熟练掌握设备的使用和维护技能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可定制性有一些独特的需求，是否能够提供高度定制化的解决方案？\\n[销售回答]：是的，我们通常可以提供高度定制化的解决方案，以满足客户的独特需求。我们的工程团队可以与您深入沟通，了解您的定制化要求，并设计制造符合您需求的特殊设备。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些工艺创新，设备是否能够适应新的工艺流程？\\n[销售回答]：是的，我们的设备通常设计为灵活适应工艺创新。我们可以与客户紧密合作，根据新的工艺流程进行调整和升级，确保设备能够在未来的工艺创新中保持卓越性能。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的网络安全性有一定担忧，是否有相应的网络安全措施？\\n[销售回答]：是的，我们通常在设备中加入网络安全措施，以确保设备在网络连接中保持安全性。这可能包括加密通信、访问控制、安全认证等功能，以降低网络攻击的风险，并保护您的生产数据安全。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些电力波动或供电不稳定的情况，设备是否有相应的电源保护机制？\\n[销售回答]：是的，我们通常为设备配置电源保护机制，以抵御电力波动或供电不稳定可能带来的风险。这可能包括过电压保护、欠电压保护等功能，确保设备在不稳定的电力环境中依然能够稳定运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要对设备进行一些特殊的定期检测，是否提供定期的设备检测服务？\\n[销售回答]：是的，我们通常可以提供定期的设备检测服务。我们的服务团队可以定期对设备进行检测、诊断和维护，以确保设备在整个使用寿命中保持最佳性能，并及时发现并解决潜在问题。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对供应商的可持续性和供应链稳定性有一定要求，供应链管理是否符合相关标准？\\n[销售回答]：是的，我们通常遵循供应链管理的相关标准，并采取措施确保供应链的可持续性和稳定性。这可能包括供应商审核、备货策略、风险管理等方面的措施，以确保我们的供应链能够满足您的要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的数据隐私保护有一定要求，是否有相应的数据隐私保护措施？\\n[销售回答]：是的，我们通常在设备中采取一系列数据隐私保护措施。这可能包括数据加密、权限控制、安全传输等技术手段，以确保设备处理和存储的数据受到充分的隐私保护。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要一些定制的报表和数据分析功能，是否能够提供个性化的数据报告？\\n[销售回答]：是的，我们通常可以提供个性化的数据报告和分析功能。我们的工程团队可以根据客户需求定制报表格式和数据分析功能，以满足客户对数据呈现和分析的个性化要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会有一些特殊的环境标准，设备是否符合相关环境保护标准？\\n[销售回答]：是的，我们通常确保设备符合相关的环境保护标准。这可能包括废物处理、噪音排放、化学物质使用等方面的环境标准，以满足客户在环保方面的要求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可追溯性和溯源性有较高要求，是否提供相关的产品溯源方案？\\n[销售回答]：是的，我们通常提供相关的产品溯源方案。这包括零部件的溯源信息、生产过程的追溯记录等，以确保客户能够追溯到设备中每个关键部件的来源和生产历史。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的维修和保养周期有一些独特的要求，是否能够提供定制的维护计划？\\n[销售回答]：是的，我们通常可以提供定制的维护计划。我们的服务团队可以根据客户的维护要求和设备特性制定个性化的维护计划，以确保设备在不同的生产环境中得到最佳的维护支持。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会有一些特殊的物料处理需求，设备是否能够适应不同种类的物料？\\n[销售回答]：是的，我们的设备通常设计为适应不同种类的物料处理需求。我们可以根据您公司使用的特殊物料性质进行调整和定制，确保设备能够高效处理不同类型的原料。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的运行效率和生产能力有较高的要求，是否能够提供相应的性能优化方案？\\n[销售回答]：是的，我们通常提供性能优化方案，以满足客户对运行效率和生产能力的高要求。我们的工程团队可以根据生产流程和产品特性进行优化设计，确保设备在最佳状态下运行，提高生产效率。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要设备的智能化管理功能，是否支持远程监控和远程操作？\\n[销售回答]：是的，我们的设备通常支持智能化管理功能，包括远程监控和远程操作。通过互联网连接，您可以实时监视设备运行状况，并在需要时进行远程操作，提高管理的灵活性和便捷性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会面临一些市场和行业标准的变化，设备是否能够及时升级以满足新的标准？\\n[销售回答]：是的，我们通常会跟踪市场和行业标准的变化，并及时提供设备的升级方案，以确保设备始终符合最新的标准要求。我们的服务团队会协助客户顺利进行升级，保障设备始终保持在合规状态。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要设备与其他生产设备进行协同工作，是否能够提供协同制造的解决方案？\\n[销售回答]：是的，我们通常可以提供协同制造的解决方案。我们的工程团队可以与其他设备供应商合作，实现设备之间的信息共享和协同工作，提高整个生产线的协同效率。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们对设备的易用性有一些要求，是否提供用户培训服务？\\n[销售回答]：是的，我们通常提供用户培训服务，确保客户的操作和维护团队能够熟练掌握设备的使用和维护技能。培训内容包括设备的基本操作、故障排除、日常维护等，以提高设备的易用性。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可靠性和稳定性有很高的要求，是否提供定期的设备健康检查服务？\\n[销售回答]：是的，我们通常可以提供定期的设备健康检查服务。我们的服务团队会定期对设备进行检查和评估，以确保设备的各项性能指标在可接受范围内，并提前发现潜在问题，确保设备的长期可靠运行。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些数字化升级，设备是否能够适应数字化生产的需求？\\n[销售回答]：是的，我们的设备通常支持数字化升级，以适应未来的数字化生产需求。我们的工程团队可以与您合作，实现设备与数字化系统的无缝连接，提高生产线的数字化水平。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在设备的使用寿命内进行一些扩展和升级，是否提供相应的扩展模块和升级方案？\\n[销售回答]：是的，我们通常提供相应的扩展模块和升级方案，以满足客户在设备使用寿命内进行扩展和升级的需求。这包括新增功能模块、性能升级等，确保设备能够随着您的业务需求持续发展。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的故障响应时间有一定要求，是否提供快速的故障响应服务？\\n[销售回答]：是的，我们通常提供快速的故障响应服务。我们的售后团队设有紧急服务热线，并会尽快响应客户的故障报告。我们还可以根据客户的服务级别协议，提供不同响应时间的服务选项。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会有一些特殊的安全标准，设备是否能够满足这些特殊标准？\\n[销售回答]：是的，我们通常确保设备符合客户的特殊安全标准。我们的工程团队会根据客户的安全要求进行定制设计，并在设备生产过程中严格执行相关安全标准，以确保设备满足客户的特殊安全需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能需要设备提供的数据与其他系统集成，是否支持开放式的数据接口？\\n[销售回答]：是的，我们的设备通常支持开放式的数据接口，以便与其他系统进行灵活集成。我们的工程团队可以提供相关的接口文档和技术支持，确保设备与其他系统之间的数据交流畅通无阻。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可操作性有一些独特要求，是否能够提供定制的操作界面？\\n[销售回答]：是的，我们通常可以提供定制的操作界面，以满足客户对设备可操作性的独特要求。我们的设计团队可以根据客户的反馈和使用习惯进行调整，确保操作界面符合客户的实际操作需求。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在设备的使用中产生大量的数据，是否有相应的数据管理和存储方案？\\n[销售回答]：是的，我们通常提供相应的数据管理和存储方案。这可能包括数据库存储、云端存储等方式，以确保客户能够方便地管理和存储设备生成的大量数据，并进行后续的数据分析和利用。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司对设备的可维护性有一定要求，是否能够提供易维护的设计和维护手册？\\n[销售回答]：是的，我们通常设计设备时考虑易维护性，并提供相应的维护手册。维护手册包括详细的维护步骤、常见故障排除方法等，以确保客户的维护团队能够迅速、准确地进行设备维护工作。', metadata={'source': 'filter_sale.txt'}),\n",
       " Document(page_content='[客户问题]：我们公司可能会在未来进行一些生产工艺的调整，设备是否能够灵活适应新的生产工艺？\\n[销售回答]：是的，我们的设备通常设计为灵活适应新的生产工艺。我们的工程团队可以与客户协作，根据新的生产工艺进行调整和优化，确保设备能够顺利适应未来的生产需求。', metadata={'source': 'filter_sale.txt'})]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4f755948-f125-44c8-8505-0ca0759c15ff",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:10:12.795958700Z",
     "start_time": "2024-01-10T07:10:11.776106200Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Project\\openai\\venv\\Lib\\site-packages\\langchain_core\\_api\\deprecation.py:115: LangChainDeprecationWarning: The class `OpenAIEmbeddings` was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use langchain_openai.OpenAIEmbeddings instead.\n",
      "  warn_deprecated(\n"
     ]
    }
   ],
   "source": [
    "# OpenAI Embedding 模型\n",
    "embeddings = OpenAIEmbeddings()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8bcd5edb-c085-4a6f-8f50-0885a6d2f15b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:19:50.764866500Z",
     "start_time": "2024-01-10T07:18:44.334093Z"
    }
   },
   "outputs": [],
   "source": [
    "# FAISS 向量数据库，使用 docs 的向量作为初始化存储\n",
    "db = FAISS.from_documents(docs, embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c227bec9-fbe0-46a5-8a86-7bfaf6fe5882",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-09T07:42:52.325349900Z",
     "start_time": "2024-01-09T07:42:52.297321100Z"
    }
   },
   "outputs": [],
   "source": [
    "# 构造提问 Query\n",
    "query = \"周边看病方便吗\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f3443153-da85-4f33-bd8d-18bccd3eae18",
   "metadata": {},
   "source": [
    "## 相似度搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8fbbbf2e-0ff8-49d9-a378-09e2a0443a77",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-09T07:42:56.308400500Z",
     "start_time": "2024-01-09T07:42:54.852003500Z"
    }
   },
   "outputs": [],
   "source": [
    "# 在 Faiss 中进行相似度搜索，找出与 query 最相似结果\n",
    "docs = db.similarity_search(\"售后服务怎么样？\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "918221f6-9687-4b04-a6b4-20527b111023",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-09T07:42:58.853298900Z",
     "start_time": "2024-01-09T07:42:58.846787300Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[客户问题]：与其他品牌相比，你们的售后服务如何？\n",
      "[销售回答]：我们以客户为中心，提供全方位的售后服务。我们拥有专业的技术支持团队，确保及时解决您的问题。而且，我们提供定期的维护服务，以确保设备的持续高效运行。\n"
     ]
    }
   ],
   "source": [
    "# 输出 Faiss 中最相似结果\n",
    "print(docs[0].page_content)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d5a351e-bea4-43d3-9b31-567842aaa1c9",
   "metadata": {},
   "source": [
    "## 持久化存储 Faiss DB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "44f4df2f-ed07-4322-9cfc-7044fc18ed1a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T07:25:09.353373100Z",
     "start_time": "2024-01-10T07:25:09.333874400Z"
    }
   },
   "outputs": [],
   "source": [
    "db.save_local(\"faiss_filter_sale_index\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5bfe3f8a-d975-42c6-b3c0-40d253506442",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "346ca9d7-f4bf-4579-a301-7a6964492a31",
   "metadata": {},
   "source": [
    "## 加载 Faiss DB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2dd3c237-3b9e-4439-966f-a34270d6471a",
   "metadata": {},
   "outputs": [],
   "source": [
    "new_db = FAISS.load_local(\"faiss_index\", embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "8c81f9f3-1650-4737-adec-d09380f1b8d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "docs = new_db.similarity_search(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "0524202a-199c-4284-81d7-c6febf2b584e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you’re at it, pass the Disclose Act so Americans can know who is funding our elections. \n",
      "\n",
      "Tonight, I’d like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer—an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service. \n",
      "\n",
      "One of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court. \n",
      "\n",
      "And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation’s top legal minds, who will continue Justice Breyer’s legacy of excellence.\n"
     ]
    }
   ],
   "source": [
    "print(docs[0].page_content)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
